<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 使用构造函数的方法 创建类 es5
        // 使用函数的原型 来模拟class 

        // function Person (name , age){
        //     // 挂载属性
        //     this.name = name
        //     this.age = age
        // }
        
        // // 挂载方法
        // Person.prototype.say = function (){
        //     console.log(this.name , this.age);
        // }
        // // 使用new关键字 构造函数
        // let obj = new Person('lrq' , 24)
        // console.log(obj);


        //  es6  Class语法糖

        class Person{
            // constructor 构造器 来挂载属性 
            constructor (name ,age){
                this.name = name
                this.age = age
            }
            // 直接书写方法
            say(){
                console.log(this.name , this.age);
            }

            // 方式2 
            static myName2 = '我也是静态属性'
            static myFn2 = function (){
                console.log('method2');
            }

        }
        let obj = new Person('lrq' , 24)


        // 类的静态方法 和 静态属性
        // 所谓的静态方法 就是不需要new 就能调用的方法
        // 方式1 
        Person.myName = 'this is name'
        Person.myFn = function () {
            console.log('this is method');
        }
        // 访问静态属性 静态方法
        console.log(Person.myName , Person.myName2 );
        Person.myFn()
        Person.myFn2()
    </script>
</body>
</html>